package com.wood.life.controller;

import com.night.common.entity.ResultVo;
import com.night.common.entity.life.Answer;
import com.night.common.entity.life.Goods;
import com.wood.life.service.AnswerService;
import com.wood.life.service.GoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * author: dz
 * 2022-10-18-19:14
 */
@RestController
@RequestMapping("/goods")
public class GoodsController {
    @Autowired
    GoodsService goodsService;

    @Autowired
    RedisTemplate redisTemplate;

    /*
        1.商品入库
        2.把商品的ID存进redis中
        3.当秒杀开始的时候，用户的请求到达的时候，先判断这个商品是否已经被秒杀，如果被秒杀返回，秒杀失败，
            如果存在进入rabbitmq队列。并在redis中把商品的ID（预处理）移除。
        4.队列去处理订单，把订单保存进入订单列表，并把原始的商品信息改为已经秒杀。（用到事物）。
        5.客户预秒杀的商品如果没有付款成功，则重新把数据库中的商品信息存在redis中。
     */
    @RequestMapping("/add")
    public ResultVo add(@RequestBody Goods goods) {
        goodsService.add(goods);
        return ResultVo.SUCCESS;
    }

    @RequestMapping("updateById")
    public ResultVo updateById(Goods goods) {
        //数量为0，下架
        if (goods.getNumber() == 0) {
            goods.setState("n");
        }
        goodsService.updateById(goods);
        return ResultVo.SUCCESS;
    }
}
